<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>

    // reverse()  数组的反转 
    // 返回值:  翻转后的原数组
    // 是否影响原数组:  是

    // var list = ["a", "b", "c", "d", "e", "f", "g"];
    // var result = list.reverse();
    // console.log(result);
    // console.log(list);
    // console.log(result === list);


    // slice(startIndex,endIndex)  数组裁切  [startIndex,endIndex)
    //      startIndex 起始下标(默认:0)
    //      endIndex   终止下标下标(默认: 数组的长度)

    // 返回值: 裁切的内容形成的新数组
    // 是否影响原数组: 否

    var list = ["a", "b", "c", "d", "e", "f", "g"];

    // 取出"c", "d", "e"放到新数组 ["c", "d", "e"]

    // var result = list.slice(2, 5);
    // console.log(result);
    // console.log(list);

    // 等价于
    // var arr = [];
    // for (var i = 2; i < 5; i++) {
    //     var item = list[i];
    //     arr.push(item);
    // }
    // console.log(arr);

    // 如果不传参可以实现数组的深复制    => 得到一个与原数组元素相同的新数组
    // var result = list.slice();
    // console.log(result);
    // console.log(list);
    // console.log(result === list);  // false


    // concat()   数组拼接(可以接收多个数组,元素拼接形成新数组 => 如果concat中的参数是一个数组, 遍历该数组,将该数组中的每个元素放到新数组中,如果concat中的参数是非数组,直接放到新数组中)
    // 返回值: 拼接后形成的新数组
    // 是否影响原数组: 否

    var arr1 = [1,2,3];
    var arr2 = [4,5,6];
    var arr3 = [7,8,9];

    // 将三个数组拼接形成一个新数组
    
    // 新建数组, 将arr1, arr2 arr3 中的元素放到新数组中
    // var arr = arr1.concat(arr2,arr3); 
    // console.log(arr);
    // console.log(arr1,arr2,arr3);

    // var arr = arr1.concat(arr2,arr3,"a","b","c"); 
    // console.log(arr);
    // console.log(arr1,arr2,arr3);

    // 对比push
    // var result = arr1.push(arr2,arr3);
    // console.log(result);
    // console.log(arr1);

    // concat之数组深复制  => 得到一个与原数组元素相同的新数组
    
    // var list = ["a", "b", "c", "d", "e", "f", "g"];
    // var result = list.concat(); 
    // console.log(result);
    // console.log(list);
    // console.log(list === result);

    // join(char)  用特定字符将数组拼接形成字符串(char默认是 ,)  
    // 返回值: 拼接后形成的新字符串
    // 是否影响原数组: 否

    var list = ["a", "b", "c", "d", "e", "f", "g"]; 

    var result = list.join("-");
    var result = list.join("+");
    var result = list.join("/");
    var result = list.join(""); // "abcdefg"
    var result = list.join(); // 默认参数 ","
    console.log(result);
    console.log(list);


    // 模拟实现join => 将数组中的元素拼接形成以下字符串 :  "a-b-c-d-e-f-g"

    // "a-b-c-d-e-f-g"
    // "a-b-c-d-e-f-g-"

    // var str = "";
    // var char = "";
    // for(var i=0;i<list.length;i++){
    //     var item = list[i];
    //     if(i == list.length - 1){
    //         str += item; 
    //     }else{
    //         str += item + char; 
    //     }
    // }
    // console.log(str);





</script>

</html>